package Elementos;

public class Identificador implements EnRango {

    private String nombre;
    private int longMax = 15;
    private boolean truncado = false;

    public Identificador() {
    }

    public Identificador(String s) {
        this.nombre = s;
        if (!(this.estaEnRango())) {
            this.nombre = s.substring(0, longMax);
            truncado = true;
        }
    }

    @Override
    public String toString(){
        return this.nombre;
    }

    public int getLongMax() {
        return longMax;
    }

    public void setLongMax(int val) {
        this.longMax = val;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String val) {
        this.nombre = val;
    }

    public boolean estaEnRango() {
        if (this.truncado)
            return false;
        if (this.nombre.length() > this.longMax) {
            return false;
        }
        return true;
    }

    public Identificador truncar() {
        return new Identificador(this.nombre.substring(0, longMax - 1));
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Identificador other = (Identificador) obj;
        if ((this.nombre == null) ? (other.nombre != null) : !this.nombre.equals(other.nombre)) {
            return false;
        }
        return true;
    }

    @Override
    public int hashCode() {
        int hash = 7;
        hash = 53 * hash + (this.nombre != null ? this.nombre.hashCode() : 0);
        return hash;
    }    
}

